您好,欢迎来到达州工业云! 平台首页 企业驾驶舱 帮助中心 企业登录 企业注册

HI,欢迎使用达州工业云平台!

账号必须大于2位

创新资源平台
服务平台首页>专利库>专利详情

基于路由功能的Modbus和BACnet Ethernet协议转化装置及转化方法

  • 申请号:CN201110418134.1 申请公布号: CN102438017A
  • 申请日: 2011-12-14 申请公布日: 2012-05-02
  • 申请(专利权)人: 专利代理机构: 北京北新智诚知识产权代理有限公司
  • 分类号:H04L29/06;H04L12/56

专利介绍

本发明公开了一种基于路由功能的Modbus网络设备和BACnet Ethernet网络设备相互转化的装置及转化方法,包括以太网网络接口、控制单元、串行接口、工作电源。工作电源与网络接口、控制单元、串行接口分别连接,并向其提供工作电源;控制单元对Modbus报文和BACnet Ethernet报文进行解析、路由定向、重新封装;网络接口连接于控制单元,接收控制单元发送的报文数据并将其转发到以太网网络上;串行接口连接于控制单元,接收控制单元发送的报文数据并将其转发到Modbus网络上。本发明使用方便、能耗低,可以将Modbus设备直接封装成为BACnet设备,实现在BACnet环境下对Modbus设备的透明管理、操作和调试,提高了系统集成的应用价值。
1.基于路由功能的Modbus和BACnetxa0Ethernet协议转化装置,其特征在于包括:控制单元,用于对收到的Modbus通信协议的报文进行报文解析、定向和重新封装,改装成BACnetxa0Ethernet通信协议的报文,并且对收到BACnetxa0Ethernet通信协议的报文进行解析、路由定向和重新封装,改装成Modbus通信协议的报文;网络接口,用于控制单元与BACnetxa0Ethernet通讯网络之间的通讯,该网络接口与所述控制单元连接;串行接口,用于控制单元与Modbus通讯网络之间的通讯,该串行接口与所述控制单元连接;工作电源,用于向控制单元、网络接口、串行接口供电。
2.如权利要求1所述的基于路由功能的Modbus和BACnetxa0Ethernet协议转化装置,其特征在于:所述控制单元为微处理电路1m3s6911+电路。
3.如权利要求1所述的基于路由功能的Modbus和BACnetxa0Ethernet协议转化装置,其特征在于:所述网络接口为RJ45标准网络接口,串行接口为RS485标准接口。
4.基于路由功能的Modbus和BACnetxa0Ethernet协议转化方法,其特征在于包括步骤:1)为BACnetxa0Ethernet通信协议的实现分配一个独立任务,为Modbus通信协议的实现分配另一个独立任务,在这两个独立运行的任务之间建立路由关系,传递Modbus设备的通信协议地址和数据内容;2)BACnetxa0NPDU报文中的NPCI内存放的是Modbus设备地址,当BACnet软件或BACnet以太网设备发出BACnetxa0NPDU报文时,直接将Modbus设备地址解析出来,传递给处理Modbus设备通信协议的任务中,Modbus设备通信处理任务的下一次指令则直接针对这个地址的Modbus设备进行主从查询,即发出对这个地址的Modbus设备的查询指令字节;3)将Modbus设备回复的应答数据报文中的Modbus设备地址,直接解析出来,传递给处理BACnet设备通信协议的任务中,BACnet设备通信处理任务的下一次任务执行则回复给查询软件或其它以太网设备所查询的Modbus设备的地址及数据内容。
5.如权利要求4所述的基于路由功能的Modbus和BACnetxa0Ethernet协议转化方法,其特征在于:所述步骤1)中建立路由关系的具体实现过程为:
1.1)当转换器收到BACnet软件或其它BACnet以太网设备发出的BACnet对象“Whoxa0is”查询指令时,转换器应根据已经在线Modbus设备的地址,为每个Modbus设备自动分配生成BACnet通信协议必需的器件编号,在Modbus设备地址的前后封装网络编号和其器件编号,组成标准的BACnet报文,并向BACnet软件或其它BACnet以太网设备发回“Ixa0am”回应报文;
1.2)当BACnet软件或其它BACnet以太网设备收到转换器发出的“Ixa0am”回应报文后,开始发出查询该Modbus设备的型号、数据等信息的BACnet报文,当转换器收到该报文时,将报文其中的NPCI网络报文头部中的Modbus设备地址信息解析出来,并立即启动Modbus侧的查询任务,将查询该地址设备相关信息的Modbus报文发送出去,并将收到的查询结果,封装为BACnet报文进行回复,实现对BACnet的“Read”响应功能。
6.如权利要求4所述的基于路由功能的Modbus和BACnetxa0Ethernet协议转化方法,其特征在于:所述步骤2)中将Modbus通信协议报文转化为BACnetxa0Ethernet通信协议报文的解析过程为:解析出Modbus通信协议报文中的Modbus设备地址并存储;解析出Modbus通信协议报文中的功能码并存储;解析出Modbus通信协议报文中的数据内容并存储;进行CRC校验;封装步骤为:在Modbus设备地址前后封装网络编号和其器件编号,存入BACnetxa0NPDU报文中的NPCI头部;将Modbus报文的功能码、数据内容、CRC校验码存入BACnetxa0NPDU报文中的APDU;在实际内容信息报文前端封装服务访问点信息“X82X82X03”字节内容;根据实际内容报文长度重新计算LLC长度值并在“X82X82X03”前端封装,形成LPDU报文;封装具体的设备硬件MAC地址,形成最终实际物理硬件收发报文内容。
7.如权利要求4所述的基于路由功能的Modbus和BACnetxa0Ethernet协议转化方法,其特征在于:所述步骤3)中将BACnetxa0Ethernet通信协议报文转化为Modbus通信协议报文的解析的过程为:解析出BACnetxa0Ethernet通信协议报文中MAC地址中的广播/单播信息;解析出LLC长度中的长度值;移除服务访问点信息“X82X82X03”字节内容;解析出BACnetxa0NPDU报文中的NPCI头部内存放的Modbus设备地址;封装步骤为:将Modbus设备地址存入Modbus报文设备地址字节;在地址字节后面,封装查询指令字节,形成最终实际物理硬件收发报文内容。技术领域
本发明涉及一种基于路由功能的Modbus和BACnetxa0Ethernet协议转化装置及转化方法,可应用在以BACnetxa0Ethernet通讯协议为主要通信协议的网络设备上,将Modbus设备路由定位并封装成BACnet设备,实现在BACnet环境下对Modbus设备直接管理,从而为BACnetEthernet设备和Modbus设备集成带来更大的应用和开发价值。
背景技术
自上世纪80年代出现第一幢智能建筑以来,智能建筑系统不断采用最新技术进行系统集成。楼宇自控网络协议BACnet(Buildingxa0Automationxa0andxa0Controlxa0Networks)是针对楼宇自控领域的标准,以其先进的技术、完善的体系结构和开放的理念迅速得到了广泛的推广和应用,并正式成为建筑智能化系统领域中的唯一ISO标准(ISOxa016484-5)。BACnet协议规范采用了网络4层架构,分别为应用层、网络层、数据链路层和物理层。在数据链路层和物理层提供五种选择,其中以太网选择之一是由ISO8802xa0Typexa01定义的逻辑连接控制协议,与ISO8802媒体访问控制MAC和物理层协议组合一起。ISO8802xa0Ethernet协议的字节报文比IP通讯协议报文较短,通信效率较高,可以避开使用IP地址技术的一些弊端,是路由器、网关类等以太网设备的以太网端口的通信协议首选。Modbus通信协议做为工业自动化网络协议规范的国家标准之一,成为楼宇机电设备控制器和测控仪表串行通信接口的常规配置。传统的BACnet/Modbus网关只能通过数据共享来实现数据交换,这种“不透明”方式不仅集成和Modbus设备管理较为困难,而且必须为大量的共享数据准备大容量存储器进行临时保存。因此,开发一种基于路由功能的BACnetxa0Ethernet和Modbus协议转装置,在网络层实现Modbus设备地址的解析和路由定向,在应用层完成对Modbus设备数据值的BACnet封装,将Modbus设备直接封装成为BACnet设备。这样就可弥补传统Modbus网关管理不透明的缺陷,极大的方便在BACnet环境中对Modbus设备的管理、调试和维护,提高系统集成的价值。
发明内容
鉴于上述,本发明的目的就是提供一种基于路由功能的Modbus和BACnetxa0Ethernet协议转化装置及转化方法。本发明采用的技术解决方案为:一种基于路由功能的Modbus和BACnetxa0Ethernet协议转化装置,包括:控制单元,用于对收到的Modbus通信协议的报文进行报文解析、定向和重新封装,改装成BACnetxa0Ethernet通信协议的报文,并且对收到BACnetxa0Ethernet通信协议的报文进行解析、定向和重新封装,改装成Modbus通信协议的报文;网络接口,用于控制单元与BACnetxa0Ethernet通讯网络之间的通讯,该网络接口与所述控制单元连接;串行接口,用于控制单元与Modbus通讯网络之间的通讯,该串行接口与所述控制单元连接;工作电源,用于向控制单元、网络接口、串行接口供电。一种基于路由功能的Modbus和BACnetxa0Ethernet协议转化方法,该方法采用BACnetxa0NPDU报文中的NPCI内存放的是Modbus设备地址,当BACnet软件或BACnet以太网设备发出BACnetNPDU报文时,直接将Modbus设备地址解析出来,传递给处理Modbus设备通信协议的任务中,Modbus设备通信处理任务的下一次指令则直接针对这个地址的Modbus设备进行主从查询,即发出对这个地址的Modbus设备的查询指令字节。将Modbus设备回复的应答数据报文中的Modbus设备地址,直接解析出来,传递给处理BACnet设备通信协议的任务中,BACnet设备通信处理任务的下一次任务执行则回复给查询软件或其它以太网设备所查询的Modbus设备的地址及数据内容。协议转换器软件为BACnet通信协议的实现分配一个独立任务,为Modbus通信协议的实现分配另一个独立任务,在这两个独立运行的任务之间建立路由关系,传递Modbus设备的通信协议地址和数据内容。本发明的优点在于:采用嵌入式技术在网络层实现Modbus设备地址的解析路由定向,在应用层完成对Modbus设备数据值的BACnet封装,将Modbus设备封装为具有BACnet对象属性的BACnet设备,可以利用现有的各种BACnet软件进行管理和操作。
附图说明
图1是本发明的电路框图;图2是BACnetxa0Ethernet通信协议的报文结构图;图3是BACnetxa0Ethernet报文转化为Modbus报文的解析和封装过程;图4是Modbus报文转化为BACnetxa0Ethernet报文的的解析和封装过程。
具体实施方式
本发明涉及基于路由功能的Modbus和BACnetxa0Ethernet协议转化装置及方法。如图1所示,本发明装置包括控制单元、网络接口、串行接口和工作电源,网络接口和串行接口与控制单元连接,工作电源向控制单元、网络接口、串行接口供电。控制单元可通过微处理电路1m3s6911+电路而实现。网络接口可为RJ45标准网络接口。串行接口为RS485标准接口。工作电源是将输入的交流电进行整流滤波而向其它单元输出。由于本发明要同时与BACnetExa0thernet和Modbus两种不同的通信协议的软件或设备进行通信,所以需要多任务功能来达到同时通信的目的。为实现多任务功能,本发明的软件系统架构上采用了嵌入式操作系统ucOSII,即将嵌入式操作系统ucOSII连同BACnetxa0Ethernet报文与Modbus报文相互转化的程序一同编译下载到控制单元,实现了可同时侦听和处理BACnetxa0Ethernet通信协议帧和Modbus通信协议帧的功能。图2是BACnetxa0Ethernet通信协议的报文结构图。其中:APDU为应用层报文;NPDU为网络层报文;NPCI为网络层报文头(控制信息);LPDU为数据链路层报文;LLC为逻辑链路控制;X82X82X03为服务访问点信息;物理层报文为具体硬件收发字节内容。本发明为BACnetxa0Ethernet通信协议的实现分配一个独立任务,为Modbus通信协议的实现分配另一个独立任务,在这两个独立运行的任务之间建立路由关系,传递Modbus设备的通信协议地址和数据内容。当BACnet软件或BACnet以太网设备发出BACnetxa0NPDU报文时,直接将Modbus设备地址解析出来,传递到处理Modbus设备通信协议的任务中,Modbus设备通信处理任务的下一次指令则直接针对这个地址的Modbus设备进行主从查询,即发出对这个地址的Modbus设备的查询指令字节。将Modbus设备回复的应答数据报文中的Modbus设备地址直接解析出来,传递给处理BACnet设备通信协议的任务中,BACnet设备通信处理任务的下一次任务执行则回复给查询软件或其它以太网设备所查询的Modbus设备的地址及数据内容。下面具体说明如何建立路由关系的具体实现过程:当转换器收到BACnet软件或其它BACnet以太网设备发出的BACnet对象“Whoxa0is”查询指令时,转换器应根据已经在线Modbus设备的地址,为每个Modbus设备自动分配生成BACnet通信协议必需的器件编号,例如,假设Modbus设备所在的RS485通信网络被定义为BACnet通信网络,网络编号为61,则硬件地址为1的Modbus设备的BACnet器件编号为6101,硬件地址为2的Modbus设备的BACnet器件编号为6102,...,依此类推,将每个在线的Modbus设备均分配一个独立的BACnet通信时唯一辨识的编号。开始在Modbus设备地址的前后封装网络编号及其器件编号,组成标准的BACnet报文,并向BACnet软件或其它BACnet以太网设备发回“Ixa0am”回应报文。当BACnet软件或其它BACnet以太网设备收到转换器发出的“Ixa0am”回应报文后,开始发出查询该Modbus设备的型号、数据等信息的BACnet报文。当转换器收到该报文时,将报文其中的NPCI网络报文头部中的Modbus设备地址信息解析出来,并立即启动Modbus侧的查询任务,将查询该地址设备相关信息的Modbus报文发送出去,并将收到的查询结果封装为BACnet报文进行回复,实现对BACnet的“Read”响应功能。下面具体说明对Modbus通信协议报文和BACnetxa0Ethernet通信协议报文如何解析和重新封装。BACnetxa0Ethernet通信协议报文转化为Modbus通信协议报文的解析和封装过程见图3。解析步骤:第一步:解析出BACnetxa0Ethernet通信协议报文中MAC地址中的广播/单播信息;第二步:解析出LLC长度中的长度值;第三步:移除服务访问点信息“X82X82X03”字节内容;第四步:解析出BACnetxa0NPDU报文中的NPCI头部内存放的Modbus设备地址。封装步骤:第一步:将Modbus设备地址存入Modbus报文设备地址字节;第二步:在地址字节后面,封装查询指令字节,形成最终实际物理硬件收发报文内容。Modbus通信协议报文转化为BACnetxa0Ethernet通信协议报文的解析和封装过程见图4。解析步骤:第一步:解析出Modbus通信协议报文中的Modbus设备地址并存储;第二步:解析出Modbus通信协议报文中的功能码并存储;第三步:解析出Modbus通信协议报文中的数据内容并存储;第四步:解析出CRC校验封装步骤:第一步:在Modbus设备地址前后封装网络编号和其器件编号,将Modbus设备地址存入BACnetxa0NPDU报文中的NPCI头部;第二步:将Modbus报文的功能码、数据内容、CRC校验码存入BACnetxa0NPDU报文中的APDU;第三步:在实际内容信息报文前端封装服务访问点信息“X82X82X03”字节内容;第四步:根据实际内容报文长度重新计算LLC长度值并在“X82X82X03”前端封装,形成LPDU报文;第五步:封装具体的设备硬件MAC地址,形成最终实际物理硬件收发报文内容。